﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.Common;
using Sinacor.Infra.UI.Common;

namespace Sinacor.UI.Bovespa.Ordens.Communication.Translator
{
	public class NegocioExecutadoToModel : BaseTranslator<Model.NegocioExecutado, Bovespa.Ordens.Negocio.NegocioExecutadoResponse,
											List<Model.NegocioExecutado>, List<Bovespa.Ordens.Negocio.NegocioExecutadoResponse>> {
		public override Sinacor.UI.Bovespa.Ordens.Model.NegocioExecutado Translate(Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Negocio.NegocioExecutadoResponse from)
		{
			if(from == null){
				return null;
			}

			Model.NegocioExecutado to = new Model.NegocioExecutado();

			to.CodigoBolsaMovimento = from.CodigoBolsaMovimento;
			to.CodigoNegocio = from.CodigoNegocio;
			to.DataHoraExecutado = from.DataHoraExecutado;
			to.DataMovimento = from.DataMovimento;
			to.DataNegocio = from.DataNegocio;
			to.DataOrdem = from.DataOrdem;
			to.DataSistema = from.DataSistema;
			
			to.NaturezaOperacao = (Model.Enum.TipoNaturezaOperacao)from.NaturezaOperacao;
			
			to.NomeResUsuario = from.NomeResUsuario;
			to.NumeroNegocio = from.NumeroNegocio;
			to.NumeroOrdem = from.NumeroOrdem;
			to.NumeroOrdemSubSequencia = from.NumeroOrdemSubSequencia;
			to.NumeroSequenciaDET = from.NumeroSequenciaDET;
			
			to.OrigemNegocio = (Model.Enum.TipoOrigemNegocio)from.OrigemNegocio;
			
			to.QuantidadeNegocio = from.QuantidadeNegocio;
			to.ValorNegocio = from.ValorNegocio;

			return to;
		}
		
		public ModelCollection<Model.NegocioExecutado> Translate(List<Bovespa.Ordens.Negocio.NegocioExecutadoResponse> from){
			ModelCollection<Model.NegocioExecutado> to = new ModelCollection<Model.NegocioExecutado>();

			for(int i=0; i<from.Count; i++){
				to.Add(Translate(from[i]));
			}

			return to;
		}
	}
}
